﻿using System;

namespace _03模板方法
{
    /// <summary>
    /// 抽象游戏类
    /// </summary>
    public abstract class Game
    {
        //每款游戏都要投币，子类不能重写
        public void InsertCoins()
        {
            Console.WriteLine("往游戏机里投币...");
        }
        public abstract void InitGame();
        public abstract void StartGame();
        public abstract void EndGame();

        //Play是模板方法，定义了子类执行的步骤
        public void Play()
        {
            //投币
            InsertCoins();
            //初始化游戏
            InitGame();
            //游戏开始
            StartGame();
            //游戏结束
            EndGame();
        }
    }
}


